// testjthread.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <thread>
#include <chrono>

using namespace std::chrono_literals;

void PrintNumber(int num)
{
    for (int i = 0; i < num; ++i)
    {
        std::cout << "thread id: " << std::this_thread::get_id() << " -Number " << i << std::endl;
        std::this_thread::sleep_for(500ms);
    }
}

int main()
{
    std::cout << "Main thread id: " << std::this_thread::get_id() << std::endl;
    int num{ 5 };
    std::jthread jt(PrintNumber, num);
    for (int i = 0; i < num; ++i)
    {
        std::cout << "Main thread - working on task " << i << std::endl;
        std::this_thread::sleep_for(300ms);
    }
    std::cout << "exit main thread" << std::endl;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
